(1) Field of the Invention
The present invention relates to networking of computer systems. More specifically, the present invention relates to optimizing the transfer of information over a network.
(2) Description of Related Art
In transmitting data over a computer network, many different protocols have been established. Chief among these protocols is the Internet Protocol, or IP. IP allows many different types of data transfer from one machine to another machine and, thus, the network of routers, gateways and other devices which form pathways on the "Internet" is commonly configured to understand IP. Ordinary file transfer, either binary or ASCII, is performed using another protocol known as Transmission Control Protocol (TCP), which runs over IP. TCP/IP is the standard protocol by which most computers transmit information over networks. The Internet, which is a network of networks, is composed of many routers, gateways and other devices which are used to transfer "packets" of information from a source machine (source node), to a destination machine (destination node). The TCP/IP protocol utilized on the Internet is known as a "reliable" data transmission protocol because when routers cannot transfer information that is submitted to them to another router or device, the information is re-sent from the source, or rerouted along the path, until it can finally be transmitted to the destination machine.
Another protocol, the User Datagram Protocol (UDP) is said to be an "unreliable" data transmission protocol. It is called "unreliable" because when a UDP transmission is sent over routers in a network, if one router drops a packet of the UDP transmission, the dropped packet of information is lost forever and no attempt is made to re-send the data to the destination machine.
A major circumstance in which routers drop UDP packets of information is where an older model router cannot transfer a packet because the packet size is too large (e.g. 1500 bytes over an ISDN router). Many older model routers will drop a UDP packet of any size larger than it has been manufactured to transfer and in the UDP case, since no retry to re-send the packet is made, the data in the packet is lost forever. UDP is unreliable and is therefore suited to the transmission of video and audio frames, for example, where it is not critical that every single packet of information be transferred across the network to the destination machine.
Thus, the accepted practice is to tolerate a lost video frame occasionally while continuing to stream remaining frames in an attempt to preserve the real-time nature of the video transmission. UDP fits this practice well and therefore can be used for video and audio streaming.
Most routers handle TCP packets irrespective of their large packet size by a method known as "fragmenting". Using fragmenting, when a larger packet enters a router, it is fragmented into smaller size packets that can be transferred through the router and onto the next router in the pathway. However, routers (old and new) fail to employ fragmenting for UDP packet transmission.
Thus, there is needed a method and apparatus which can guarantee that UDP packets are transmitted over the network successfully, such that large UDP packets are not dropped by a router merely because the router cannot transfer large size packets, while keeping the protocol unreliable.